package com.ftg;

import java.util.ArrayDeque;
import java.util.Queue;

/**
 * 约瑟夫环
 *  采用队列
 *  ......
 * @author kangjx
 * @version 1.0
 * @date 2023/3/24 下午2:30
 */
public class Yeseifu {

    /**
     * .......
     * @param queue 队列
     * @return      活下来的人的名字
     */
    public String killPerson(Queue<String> queue){
        while(queue.size() != 1){
            queue.add(queue.poll());
            queue.add(queue.poll());
            queue.poll();
        }
        return queue.poll();
    }


    public static void main(String[] args) {
        //帮我们创建一个队列
        Queue<String> queue = new ArrayDeque<>();
        queue.add("和三");
        queue.add("小全");
        queue.add("小红");
        queue.add("小蓝");
        queue.add("二狗");
        queue.add("李春花");
        queue.add("小则");
        queue.add("步明");
        queue.add("大小");
        queue.add("小王");
        //最优解 : --->
        Yeseifu kjx = new Yeseifu();
        String s = kjx.killPerson(queue);
        System.out.println(s);
    }

}
